# coding=utf-8

import urlparse
import web

import utils
import settings

def combine(uri, **kw):
    """
    将给定参数组合到给定uri中
    """
    if kw:
        import urllib
        # 组合参数
        params = urllib.urlencode(kw)
        # uri中是否包含问号，没有就补一个
        if '?' not in uri:
            uri += '?'
        if uri[-1:] != '?':
            uri += '&'

        uri += params

    return uri

def redirect(uri, **kw):
    """
    转向到给定地址
    """
    # 最后再转向
    raise web.seeother(combine(uri, **kw))

def home():
    """
    返回到首页
    """
    return redirect('/')

def afflatus(id, top = False):
    """
    返回到灵感页
    """
    if top:
        return '<script type="text/javascript">top.location.href="/afflatus/%s";</script>' % id
    else:
        return redirect('/afflatus/%s' % id)

def close_lite():
    """
    关闭弹出层
    """
    return '''<script type="text/javascript">var topWin = window.dialogArguments || opener || parent || top;topWin.$.fancybox.close();</script>'''

def discounts(id = 0, **kw):
    """
    返回特惠信息页面
    @id as long, 若id=0，则返回特惠信息列表
    """
    if id > 0:
        return redirect('/discounts/%s' % id, **kw)
    else:
        return redirect('/discounts', **kw)

def referer():
    """
    跳转到上一页
    """
    # 获取上一页地址
    referer = utils.get_referer()
    if referer:
        u = urlparse.urlparse(referer)
        # 来访页是否是本站
        if not u.netloc or settings.CONFIG.DOMAIN == u.netloc or settings.CONFIG.DOMAIN in u.netloc:
            # 如果是本站，则跳转到该页
            return redirect(referer)
    # 其他情况全部返回首页
    return home()

